// 等待 DOM 加载完成
document.addEventListener('DOMContentLoaded', () => {
    // 初始化各个模块
    const sensorManager = new SensorManager();
    const controller = new IrrigationController();
    const chartManager = new ChartManager();
    
    // 确保实时墒情数据更新
    if (window.realTimeMoisture) {
        window.realTimeMoisture.refreshCharts();
    }

    // 初始化导航
    const navigation = new Navigation();

    // 初始化远程控制模块
    window.remoteControl = new RemoteControl();

    // 启动定时更新
    // 定期更新传感器数据
    setInterval(() => {
        sensorManager.fetchSensorData().then(() => {
            // 更新图表
            chartManager.updateChart(sensorManager.sensorData.soilMoisture);
        });
        
        // 自动控制逻辑
        if (sensorManager.needsIrrigation() && !controller.irrigationStatus) {
            controller.toggleIrrigation();
        } else if (!sensorManager.needsIrrigation() && controller.irrigationStatus) {
            controller.toggleIrrigation();
        }
    }, 5000);

    // 每小时更新天气信息
    setInterval(() => {
        sensorManager.fetchWeatherData();
    }, 3600000);

    // 初始化时获取一次天气信息
    sensorManager.fetchWeatherData();
});

// 全局函数
function showPanel(panelName) {
    // 隐藏所有面板
    document.querySelectorAll('.dashboard > div').forEach(panel => {
        panel.style.display = 'none';
    });
    
    // 显示选中的面板
    const selectedPanel = document.querySelector(`.${panelName}-panel`);
    if (selectedPanel) {
        selectedPanel.style.display = 'block';
    }
    
    // 更新菜单项的激活状态
    document.querySelectorAll('.menu-items li').forEach(item => {
        item.classList.remove('active');
    });
    
    // 根据面板名称找到对应的菜单项并激活
    const menuMap = {
        'real-time-moisture': '实时墒情',
        'moisture-trend': '墒情趋势',
        'layered-monitoring': '分层监测',
        'area-distribution': '区域分布',
        'device-status': '水肥设备状态',
        'realtime-monitoring': '实时数据监测',
        'fault-warning': '故障预警',
        'remote-control': '远程控制'
    };
    
    const menuText = menuMap[panelName];
    if (menuText) {
        document.querySelectorAll('.menu-items li').forEach(item => {
            if (item.textContent.trim() === menuText) {
                item.classList.add('active');
            }
        });
    }
} 